package com.me.study.javaBasic.dataType;

import java.util.ArrayList;
import java.util.List;

/**
 * 1, 除法运算向下取整: 2/11 = 0<p>
 * 2,
 *
 * @author ME
 * @date   2016年5月19日 上午11:20:48
 */
public class TestInt {
	public static void main(String[] args) {
		int a = 2;
		int b = 11;
		System.out.println(a);
//		a = b;
		System.out.println(a);
		System.out.println(a/b);// 向下取整
		
		List<String> ss = new ArrayList<String>();
		ss.add("1");
		ss.add("2");
		ss.add("3");
		System.out.println(ss.toArray());

		// ++i   i++
		System.out.println("\n============++i");
		int i = 10;
		i = ++i;
		System.out.println(i);// 11
		i = 10;
		i = i++;
		System.out.println(i);// 10

		//
		System.out.println("\n============");
		int sshift = 0;
		int ssize = 1;
		// 计算并行级别 ssize，因为要保持并行级别是 2 的 n 次方
		// 左移 1 位相当于 * 2，不过效率高很多
		while (ssize < 16) {
			++sshift;
			ssize <<= 1;
		}
		System.out.println(sshift);// 4
		System.out.println(ssize);// 16

		// 位运算实现加法
		int num1 = 111, num2 = 899;
		while (num2 != 0) {
			// 让num2变成进位，num1就是不考虑进位的值，一直到num2为0，num1就是结果
			int temp = num1;
			num1 = num1 ^ num2;
			num2 = (temp & num2) << 1;
			System.out.println("num1: " + num1 + " num2: " + num2);
		}
		System.out.println(num1);
	}

	private void ss() {

	}
}
